package za.co.smartmi.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class Product implements Serializable
{
	/** 
	 * This attribute maps to the column productid in the product table.
	 */
	protected Integer productid;

	/** 
	 * This attribute maps to the column name in the product table.
	 */
	protected String name;

	/** 
	 * This attribute maps to the column desc in the product table.
	 */
	protected String desc;

	/** 
	 * This attribute maps to the column type in the product table.
	 */
	protected String type;

	/** 
	 * This attribute maps to the column cover in the product table.
	 */
	protected BigDecimal cover;

	/** 
	 * This attribute maps to the column premium in the product table.
	 */
	protected BigDecimal premium;

	/** 
	 * This attribute maps to the column adminfee in the product table.
	 */
	protected BigDecimal adminfee;

	/** 
	 * This attribute maps to the column coverfee in the product table.
	 */
	protected BigDecimal coverfee;

	/** 
	 * This attribute maps to the column vatfee in the product table.
	 */
	protected BigDecimal vatfee;

	/** 
	 * This attribute maps to the column otherfee in the product table.
	 */
	protected BigDecimal otherfee;

	/** 
	 * This attribute maps to the column status in the product table.
	 */
	protected String status;

	/** 
	 * This attribute maps to the column startdate in the product table.
	 */
	protected Date startdate;

	/** 
	 * This attribute maps to the column enddate in the product table.
	 */
	protected Date enddate;

	/** 
	 * This attribute maps to the column csys in the product table.
	 */
	protected String csys;

	/** 
	 * This attribute maps to the column cdate in the product table.
	 */
	protected Date cdate;

	/** 
	 * This attribute maps to the column usys in the product table.
	 */
	protected String usys;

	/** 
	 * This attribute maps to the column udate in the product table.
	 */
	protected Date udate;

	/**
	 * Method 'Product'
	 * 
	 */
	public Product()
	{
	}

	/**
	 * Method 'getProductid'
	 * 
	 * @return Integer
	 */
	public Integer getProductid()
	{
		return productid;
	}

	/**
	 * Method 'setProductid'
	 * 
	 * @param productid
	 */
	public void setProductid(Integer productid)
	{
		this.productid = productid;
	}

	/**
	 * Method 'getName'
	 * 
	 * @return String
	 */
	public String getName()
	{
		return name;
	}

	/**
	 * Method 'setName'
	 * 
	 * @param name
	 */
	public void setName(String name)
	{
		this.name = name;
	}

	/**
	 * Method 'getDesc'
	 * 
	 * @return String
	 */
	public String getDesc()
	{
		return desc;
	}

	/**
	 * Method 'setDesc'
	 * 
	 * @param desc
	 */
	public void setDesc(String desc)
	{
		this.desc = desc;
	}

	/**
	 * Method 'getType'
	 * 
	 * @return String
	 */
	public String getType()
	{
		return type;
	}

	/**
	 * Method 'setType'
	 * 
	 * @param type
	 */
	public void setType(String type)
	{
		this.type = type;
	}

	/**
	 * Method 'getCover'
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getCover()
	{
		return cover;
	}

	/**
	 * Method 'setCover'
	 * 
	 * @param cover
	 */
	public void setCover(BigDecimal cover)
	{
		this.cover = cover;
	}

	/**
	 * Method 'getPremium'
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getPremium()
	{
		return premium;
	}

	/**
	 * Method 'setPremium'
	 * 
	 * @param premium
	 */
	public void setPremium(BigDecimal premium)
	{
		this.premium = premium;
	}

	/**
	 * Method 'getAdminfee'
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getAdminfee()
	{
		return adminfee;
	}

	/**
	 * Method 'setAdminfee'
	 * 
	 * @param adminfee
	 */
	public void setAdminfee(BigDecimal adminfee)
	{
		this.adminfee = adminfee;
	}

	/**
	 * Method 'getCoverfee'
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getCoverfee()
	{
		return coverfee;
	}

	/**
	 * Method 'setCoverfee'
	 * 
	 * @param coverfee
	 */
	public void setCoverfee(BigDecimal coverfee)
	{
		this.coverfee = coverfee;
	}

	/**
	 * Method 'getVatfee'
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getVatfee()
	{
		return vatfee;
	}

	/**
	 * Method 'setVatfee'
	 * 
	 * @param vatfee
	 */
	public void setVatfee(BigDecimal vatfee)
	{
		this.vatfee = vatfee;
	}

	/**
	 * Method 'getOtherfee'
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getOtherfee()
	{
		return otherfee;
	}

	/**
	 * Method 'setOtherfee'
	 * 
	 * @param otherfee
	 */
	public void setOtherfee(BigDecimal otherfee)
	{
		this.otherfee = otherfee;
	}

	/**
	 * Method 'getStatus'
	 * 
	 * @return String
	 */
	public String getStatus()
	{
		return status;
	}

	/**
	 * Method 'setStatus'
	 * 
	 * @param status
	 */
	public void setStatus(String status)
	{
		this.status = status;
	}

	/**
	 * Method 'getStartdate'
	 * 
	 * @return Date
	 */
	public Date getStartdate()
	{
		return startdate;
	}

	/**
	 * Method 'setStartdate'
	 * 
	 * @param startdate
	 */
	public void setStartdate(Date startdate)
	{
		this.startdate = startdate;
	}

	/**
	 * Method 'getEnddate'
	 * 
	 * @return Date
	 */
	public Date getEnddate()
	{
		return enddate;
	}

	/**
	 * Method 'setEnddate'
	 * 
	 * @param enddate
	 */
	public void setEnddate(Date enddate)
	{
		this.enddate = enddate;
	}

	/**
	 * Method 'getCsys'
	 * 
	 * @return String
	 */
	public String getCsys()
	{
		return csys;
	}

	/**
	 * Method 'setCsys'
	 * 
	 * @param csys
	 */
	public void setCsys(String csys)
	{
		this.csys = csys;
	}

	/**
	 * Method 'getCdate'
	 * 
	 * @return Date
	 */
	public Date getCdate()
	{
		return cdate;
	}

	/**
	 * Method 'setCdate'
	 * 
	 * @param cdate
	 */
	public void setCdate(Date cdate)
	{
		this.cdate = cdate;
	}

	/**
	 * Method 'getUsys'
	 * 
	 * @return String
	 */
	public String getUsys()
	{
		return usys;
	}

	/**
	 * Method 'setUsys'
	 * 
	 * @param usys
	 */
	public void setUsys(String usys)
	{
		this.usys = usys;
	}

	/**
	 * Method 'getUdate'
	 * 
	 * @return Date
	 */
	public Date getUdate()
	{
		return udate;
	}

	/**
	 * Method 'setUdate'
	 * 
	 * @param udate
	 */
	public void setUdate(Date udate)
	{
		this.udate = udate;
	}

	/**
	 * Method 'equals'
	 * 
	 * @param _other
	 * @return boolean
	 */
	public boolean equals(Object _other)
	{
		if (_other == null) {
			return false;
		}
		
		if (_other == this) {
			return true;
		}
		
		if (!(_other instanceof Product)) {
			return false;
		}
		
		final Product _cast = (Product) _other;
		if (productid == null ? _cast.productid != productid : !productid.equals( _cast.productid )) {
			return false;
		}
		
		if (name == null ? _cast.name != name : !name.equals( _cast.name )) {
			return false;
		}
		
		if (desc == null ? _cast.desc != desc : !desc.equals( _cast.desc )) {
			return false;
		}
		
		if (type == null ? _cast.type != type : !type.equals( _cast.type )) {
			return false;
		}
		
		if (cover == null ? _cast.cover != cover : !cover.equals( _cast.cover )) {
			return false;
		}
		
		if (premium == null ? _cast.premium != premium : !premium.equals( _cast.premium )) {
			return false;
		}
		
		if (adminfee == null ? _cast.adminfee != adminfee : !adminfee.equals( _cast.adminfee )) {
			return false;
		}
		
		if (coverfee == null ? _cast.coverfee != coverfee : !coverfee.equals( _cast.coverfee )) {
			return false;
		}
		
		if (vatfee == null ? _cast.vatfee != vatfee : !vatfee.equals( _cast.vatfee )) {
			return false;
		}
		
		if (otherfee == null ? _cast.otherfee != otherfee : !otherfee.equals( _cast.otherfee )) {
			return false;
		}
		
		if (status == null ? _cast.status != status : !status.equals( _cast.status )) {
			return false;
		}
		
		if (startdate == null ? _cast.startdate != startdate : !startdate.equals( _cast.startdate )) {
			return false;
		}
		
		if (enddate == null ? _cast.enddate != enddate : !enddate.equals( _cast.enddate )) {
			return false;
		}
		
		if (csys == null ? _cast.csys != csys : !csys.equals( _cast.csys )) {
			return false;
		}
		
		if (cdate == null ? _cast.cdate != cdate : !cdate.equals( _cast.cdate )) {
			return false;
		}
		
		if (usys == null ? _cast.usys != usys : !usys.equals( _cast.usys )) {
			return false;
		}
		
		if (udate == null ? _cast.udate != udate : !udate.equals( _cast.udate )) {
			return false;
		}
		
		return true;
	}

	/**
	 * Method 'hashCode'
	 * 
	 * @return int
	 */
	public int hashCode()
	{
		int _hashCode = 0;
		if (productid != null) {
			_hashCode = 29 * _hashCode + productid.hashCode();
		}
		
		if (name != null) {
			_hashCode = 29 * _hashCode + name.hashCode();
		}
		
		if (desc != null) {
			_hashCode = 29 * _hashCode + desc.hashCode();
		}
		
		if (type != null) {
			_hashCode = 29 * _hashCode + type.hashCode();
		}
		
		if (cover != null) {
			_hashCode = 29 * _hashCode + cover.hashCode();
		}
		
		if (premium != null) {
			_hashCode = 29 * _hashCode + premium.hashCode();
		}
		
		if (adminfee != null) {
			_hashCode = 29 * _hashCode + adminfee.hashCode();
		}
		
		if (coverfee != null) {
			_hashCode = 29 * _hashCode + coverfee.hashCode();
		}
		
		if (vatfee != null) {
			_hashCode = 29 * _hashCode + vatfee.hashCode();
		}
		
		if (otherfee != null) {
			_hashCode = 29 * _hashCode + otherfee.hashCode();
		}
		
		if (status != null) {
			_hashCode = 29 * _hashCode + status.hashCode();
		}
		
		if (startdate != null) {
			_hashCode = 29 * _hashCode + startdate.hashCode();
		}
		
		if (enddate != null) {
			_hashCode = 29 * _hashCode + enddate.hashCode();
		}
		
		if (csys != null) {
			_hashCode = 29 * _hashCode + csys.hashCode();
		}
		
		if (cdate != null) {
			_hashCode = 29 * _hashCode + cdate.hashCode();
		}
		
		if (usys != null) {
			_hashCode = 29 * _hashCode + usys.hashCode();
		}
		
		if (udate != null) {
			_hashCode = 29 * _hashCode + udate.hashCode();
		}
		
		return _hashCode;
	}

	/**
	 * Method 'createPk'
	 * 
	 * @return ProductPk
	 */
	public ProductPk createPk()
	{
		return new ProductPk(productid);
	}

	/**
	 * Method 'toString'
	 * 
	 * @return String
	 */
	public String toString()
	{
		StringBuffer ret = new StringBuffer();
		ret.append( "za.co.smartmi.dto.Product: " );
		ret.append( "productid=" + productid );
		ret.append( ", name=" + name );
		ret.append( ", desc=" + desc );
		ret.append( ", type=" + type );
		ret.append( ", cover=" + cover );
		ret.append( ", premium=" + premium );
		ret.append( ", adminfee=" + adminfee );
		ret.append( ", coverfee=" + coverfee );
		ret.append( ", vatfee=" + vatfee );
		ret.append( ", otherfee=" + otherfee );
		ret.append( ", status=" + status );
		ret.append( ", startdate=" + startdate );
		ret.append( ", enddate=" + enddate );
		ret.append( ", csys=" + csys );
		ret.append( ", cdate=" + cdate );
		ret.append( ", usys=" + usys );
		ret.append( ", udate=" + udate );
		return ret.toString();
	}

}
